#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <qmainwindow.h> 
#include <qaction.h>
#include <qlistview.h>
#include <qcolor.h>
#include <qlabel.h>
#include <qlayout.h>
#include <qtable.h>
#include <qpushbutton.h>

#include <game_controller.h>
#include <game_status_indicator.h>
#include <players_list.h>
#include <game_field.h>

class GameController;
class PlayersList;
class GameField;

class GameWindow : public QMainWindow
{
    Q_OBJECT

public:
    GameWindow(GameController * c,  QWidget* parent = 0, const char* name = 0, WFlags fl = WType_TopLevel );
    ~GameWindow();

	void setController (GameController * c);
	void setStatusMessage (QString msg);

	

	QWidget * gameLayout;
	GameStatusIndicator * statusIndicator;
	PlayersList * playersList;
	GameField * field;
	QVBoxLayout * vLayout;
	QHBoxLayout * hLayout;


    QWidget * ratingLayout;
	QVBoxLayout * vRatingLayout;
	QHBoxLayout * hRatingLayout;
	QTable * ratingTable;
	QPushButton * saveRatingButton;
	QPushButton * loadRatingButton;
	QPushButton * exportRatingButton;
	QPushButton * closeRatingButton;


	QWidget * emptyLayout;
	QLabel * logoLabel;


    QMenuBar *MenuBar;
    QPopupMenu *gameMenu;
    QPopupMenu *infoMenu;
	QPopupMenu *helpMenu;
    QToolBar *toolBar;
    QAction* gameNewAction;
    //QAction* gameEndForCurrentAction;
    QAction* gameEndForAllAction;
    QAction* gameResetAction;
    QAction* gameSettingsAction;
    QAction* gameExitAction;
	QAction* gameLogoutAction;
	QAction* gameGlobalSettings;
    QAction* infoRatingAction;
    QAction* helpRulesAction;
	QAction* helpContentsAction;
    QAction* helpAboutAction;


protected:
	GameController *gameController;

	virtual void closeEvent ( QCloseEvent * e ) ;

protected slots:
    virtual void languageChange();

};

#endif //MAINWINDOW